/*
============================================================================
Name        : LuaUIView.h
Author      : Jian
Version     :
Copyright   : Jian
Description : Application view
============================================================================
*/

#ifndef __LUAUIAPPVIEW_H__
#define __LUAUIAPPVIEW_H__

// INCLUDES
#include <coecntrl.h>

// CLASS DECLARATION
class CLuaUIAppView : public CCoeControl
{
public: // New methods

    /**
    * NewL.
    * Two-phased constructor.
    * Create a CLuaUIAppView object, which will draw itself to aRect.
    * @param aRect The rectangle this view will be drawn to.
    * @return a pointer to the created instance of CLuaUIAppView.
    */
    static CLuaUIAppView* NewL( const TRect& aRect );

    /**
    * NewLC.
    * Two-phased constructor.
    * Create a CLuaUIAppView object, which will draw itself
    * to aRect.
    * @param aRect Rectangle this view will be drawn to.
    * @return A pointer to the created instance of CLuaUIAppView.
    */
    static CLuaUIAppView* NewLC( const TRect& aRect );

    /**
    * ~CLuaUIAppView
    * Virtual Destructor.
    */
    virtual ~CLuaUIAppView();

public:  // Functions from base classes

    /**
    * From CCoeControl, Draw
    * Draw this CLuaUIAppView to the screen.
    * @param aRect the rectangle of this view that needs updating
    */
    void Draw( const TRect& aRect ) const;

    /**
    * From CoeControl, SizeChanged.
    * Called by framework when the view size is changed.
    */
    virtual void SizeChanged();

private: // Constructors

    /**
    * ConstructL
    * 2nd phase constructor.
    * Perform the second phase construction of a
    * CLuaUIAppView object.
    * @param aRect The rectangle this view will be drawn to.
    */
    void ConstructL(const TRect& aRect);

    /**
    * CLuaUIAppView.
    * C++ default constructor.
    */
    CLuaUIAppView();

};

#endif // __LUAUIAPPVIEW_H__

// End of File
